import define from '@/utils/define'
import QQMapWX from '@/libs/qqmap-wx-jssdk.min.js';

function getLocal() {
	return new Promise((resolve, reject) => {
		// #ifdef MP-WEIXIN
		wx.getLocation({
			type: 'gcj02',
			isHighAccuracy: true,
			success: function(res) {
				resolve(res)
			},
			fail: function(err) {
				if (err.errMsg == "getLocation:fail 需要重新登录,access_token missing") {
					// uni.navigateTo({
					// 	url:"/pages/login/login"
					// })
				}
				reject(err)
			}
		})
		// #endif
		// h5获取地理维度方法
		// #ifdef H5
		uni.getLocation({
			type: 'gcj02',
			isHighAccuracy: true,
			success: (res) => {
				resolve(res)
			},
			fail: (err) => {
				console.log('h5报错', err)
				reject(err)
			}
		});
		// #endif

	})

}
//根据经纬度获取精确地址
async function getLocalAddress(longitude, latitude) {
	let qqmapsdk = new QQMapWX({
		key: define.aMapWebKey
	})

	if (!longitude && !latitude) {
		let res = await getLocal();
		longitude = res.longitude;
		latitude = res.latitude;
	}
	return new Promise((resolve, reject) => {
		qqmapsdk.reverseGeocoder({
			location: {
				longitude: longitude,
				latitude: latitude
			},
			success: function(data) {
				resolve(data)
			},
			fail: function(err) {
				console.log(err)
			}
		})
	})

}
//选择地理位置
function chooseLocal() {
	return new Promise((resolve, reject) => {
		// 微信小程序获取地理维度方法
		// #ifdef MP-WEIXIN
		wx.chooseLocation({
			success: function(res) {
				console.log('小程序选择地理位置', res)
				resolve(res)
			},
			fail: function(err) {
				console.log(err)
			}
		})
		// #endif
		// h5获取地理维度方法
		// #ifdef H5
		uni.chooseLocation({
			complete(res) {

			},
			success(res) {
				console.log('h5选择地理位置', res)
				resolve(res)
			},
			fail(err) {

			}
		})
		// #endif
	})

}

function openMap(lat, lon) {
	uni.openLocation({
		latitude: lat,
		longitude: lon,
		success: function() {
			console.log('success');
		}
	});
}
export {
	getLocal,
	getLocalAddress,
	chooseLocal,
	openMap
}